配置雙主模式
配置數據庫1
修改1服務器上的數據庫配置文件/etc/my.cnf,增加以下配置:
#設置server-id
server-id=1
#開啟二進制日志
log-bin=mysql-bin
#開啟中繼日志
relay-log=relay-log
#設置binlog日志格式
binlog_format=ROW
#設置不進行同步的數據庫
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#設置并行復制線程數,推薦和cpu核數保持一致
slave_parallel_workers=8
#設置組提交的并行復制方式
slave_parallel_type=logical_clock
#開啟gtid模式
gtid_mode=on
#設置GTID的一致性
enforce_gtid_consistency=ON
#開啟中繼日志恢復
relay-log-recovery=1
#設置中繼日志信息記錄的方式
relay-log-info-repository=TABLE
#設置同步master.info事務間隔
sync_master_info=1
#設置master.info記錄方式
master_info_repository=TABLE
#設置binlog日志過期清理時間
expire_logs_days=30
#設置登錄驗證方式
default_authentication_plugin=mysql_native_password
#開啟不區分大小寫
#在配置文件內使用該參數需要清空mysql的數據目錄,rm -rf /var/lib/mysql/*
#而且在安裝mysql后需要執行 ?mysqld --initialize --lower-case-table-name=1
lower_case_table_names = 1
default-time_zone='+08:00'
登錄mysql創建同步用戶
mysql> CREATE USER 'repl'@'192.168.1.101' IDENTIFIED BY 'Welcome1!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101';
mysql> flush privileges;?
重啟mysql
systemctl restart mysqld
查看mysql的狀態
show master status
配置數據庫2
修改1服務器上的數據庫配置文件/etc/my.cnf,增加以下配置:
#設置server-id,不能和mysql重復
server-id=2
#開啟二進制日志
log-bin=mysql-bin
#開啟中繼日志
relay-log=relay-log
#設置binlog日志格式
binlog_format=ROW
#設置不進行同步的數據庫
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#設置并行復制線程數,推薦和cpu核數保持一致
slave_parallel_workers=8
#設置組提交的并行復制方式
slave_parallel_type=logical_clock
#開啟gtid模式
gtid_mode=on
#設置GTID的一致性
enforce_gtid_consistency=ON
#開啟中繼日志恢復
relay-log-recovery=1
#設置中繼日志信息記錄的方式
relay-log-info-repository=TABLE
#設置同步master.info事務間隔
sync_master_info=1
#設置master.info記錄方式
master_info_repository=TABLE
#設置binlog日志過期清理時間
expire_logs_days=30
#設置登錄驗證方式
default_authentication_plugin=mysql_native_password
#開啟不區分大小寫
#在配置文件內使用該參數需要清空mysql的數據目錄,rm -rf /var/lib/mysql/*
#而且在安裝mysql后需要執行 ?mysqld --initialize --lower-case-table-name=1
lower_case_table_names = 1
default-time_zone='+08:00'
登錄mysql創建同步用戶
mysql> CREATE USER 'repl'@'192.168.1.100' IDENTIFIED BY 'Welcome1!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.100';
#設置該賬號使用普通賬號認證
mysql> alter user'repl'@'10.120.72.24' identified with mysql_native_password by 'Xdzn@2022';
mysql> flush privileges;?
重啟mysql
systemctl restart mysqld
查看mysql的狀態
show master status
查看狀態時,只有兩臺顯示的一致結果一致時才會同步成功
配置同步
進入服務器2,登錄mysql,執行同步語句
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='Welcome1!',master_auto_position=1;
啟動同步
mysql> start slave
mysql> show slave status\G;
#Slave_IO_Running和Slave_SQL_Running都顯示為YES說明同步成功
?